:root {
    --linked-block-point-size: 7px;
    --linked-block-point-color: #b1b1b1;
    --linked-block-line-width: 1px;
    --linked-block-min-size: 100px;
    --linked-block-border-radius: 4px;
    --linked-block-background: var(--default-background);
    --linked-block-color: #191919;
    --linked-block-border-color: #b1b1b1;
    --linked-block-line-color: #b1b1b1;
}

.dark-side {
    --linked-block-background: var(--default-background);
    --linked-block-color: #ffffff;
    --linked-block-border-color: #656a70;
    --linked-block-line-color: #656a70;
    --linked-block-point-color: #656a70;
}

.linked-block {
    position: absolute;
    display: block;
    width: var(--linked-block-min-size);
    height: var(--linked-block-min-size);
    background-color: var(--linked-block-background);
    color: var(--linked-block-color);
    border: 1px solid var(--linked-block-border-color);
    border-radius: var(--linked-block-border-radius);
    user-select: none;

    .north-side, .east-side, .south-side, .west-side {
        position: absolute;
        display: flex;
        align-items: center;
        justify-content: center;
        overflow: visible;
        gap: 2px;
    }

    .north-side, .south-side {
        width: 100%;
        height: 1px;
        flex-flow: row nowrap;
    }

    .east-side, .west-side {
        width: 1px;
        height: 100%;
        flex-flow: column nowrap;
    }

    .north-side {
        top: -1px;
    }

    .east-side {
        right: -1px;
    }

    .south-side {
        bottom: -1px;
    }

    .west-side {
        left: -1px;
    }

    .link-point {
        display: block;
        position: relative;
        width: var(--linked-block-point-size);
        aspect-ratio: 1/1;
        border-radius: 50%;
        background-color: var(--linked-block-point-color);
        flex: 0 0 var(--linked-block-point-size);
    }
}

.connection-line {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}